/**
 * @addtogroup brd_ext_int_def
 * brd_ext_int_def
 * @{
 */
/**
 * @file brd_ext_int_def.h
 * @brief 板级层外部中断定义
 * @note
 * @par 修改日志
 * <table>
 * <tr><th>Date <th>Version <th>Author <th>Description
 * <tr><td>2020-10-20 <td>1.0 <td>软件工程院 <td>创建初始版本
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */
#ifndef _BRD_EXT_INT_DEF_H_
#define _BRD_EXT_INT_DEF_H_

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 外部中断类型
 * @note:
 * 常用于休眠唤醒, 正常模式下不要使用(由于其中部分类型是电平唤醒, 在正常模式下使用会一直响应中断, 
 * 需要在Brd_TOnExtIntIrq事件中关闭中断, 否则会导致程序异常)
 */
enum Brd_TExtIntIdTag {
    kBrd_ExtIntIdBase                         = 0,
    kBrd_ExtIntIdAcc                          = kBrd_ExtIntIdBase,          ///< 钥匙电(T30)中断, 可作为唤醒源
    kBrd_ExtIntIdAccWake                      = 1,                          ///< 备用钥匙电(T30)中断, 可作为唤醒源
    kBrd_ExtIntIdIg                           = 2,                          ///< Ig(T15)点火中断, 可作为唤醒源
    kBrd_ExtIntIdNetWakeupMcu                 = 3,                          ///< 网络模块唤醒MCU中断, 可作为唤醒源
    kBrd_ExtIntIdNetStatus                    = 4,                          ///< 网络模块状态中断, 可作为唤醒源
    kBrd_ExtIntIdNetSleep                     = 5,                          ///< 网络模块休眠中断, 可作为唤醒源
    kBrd_ExtIntIdAxis                         = 6,                          ///< 轴传感器中断, 可作为唤醒源  
    kBrd_ExtIntIdExtRtc                       = 7,                          ///< 外部RTC中断, 可作为唤醒源
    kBrd_ExtIntIdChgHigh                      = 8,                          ///< 充电高中断, 可作为唤醒源
    kBrd_ExtIntIdChgLow                       = 9,                          ///< 充电低中断, 可作为唤醒源
    kBrd_ExtIntIdPwrLost                      = 10,                         ///< 主电掉电中断, 可作为唤醒源
    kBrd_ExtIntIdCan0                         = 11,                         ///< 第一路CAN中断, 可作为唤醒源
    kBrd_ExtIntIdCan1                         = 12,                         ///< 第二路CAN中断, 可作为唤醒源
    kBrd_ExtIntIdCan2                         = 13,                         ///< 第三路CAN中断, 可作为唤醒源
    kBrd_ExtIntIdCan3                         = 14,                         ///< 第四路CAN中断, 可作为唤醒源
    kBrd_ExtIntIdBthInt                       = 15,                         ///< 蓝牙中断, 使用需先使能蓝牙电源
    kBrd_ExtIntIdBtn                          = 16,                         ///< 外部按键中断, 不可作为唤醒源
    kBrd_ExtIntIdSw1                          = 17,                         ///< 第一路外部开关量中断, 可作为唤醒源
    // kBrd_ExtIntIdSw3                          = 18,                         ///< 第三路外部开关量中断, 可作为唤醒源
    kBrd_ExtIntIdMax,
};
typedef enum Brd_TExtIntIdTag Brd_TExtIntId;

#define BRD_EXT_INT_ID_ACC
#define BRD_EXT_INT_ID_ACC_WAKE
#define BRD_EXT_INT_ID_IG
#define BRD_EXT_INT_ID_NET_WAKEUP_MCU
#define BRD_EXT_INT_ID_NET_STATUS
#define BRD_EXT_INT_ID_NET_SLEEP
#define BRD_EXT_INT_ID_AXIS
#define BRD_EXT_INT_ID_EXT_RTC
#define BRD_EXT_INT_ID_CHG_HIGH
#define BRD_EXT_INT_ID_CHG_LOW
#define BRD_EXT_INT_ID_PWR_LOST
#define BRD_EXT_INT_ID_CAN0
#define BRD_EXT_INT_ID_CAN1
#define BRD_EXT_INT_ID_CAN2
#define BRD_EXT_INT_ID_CAN3
#define BRD_EXT_INT_ID_BTH_INT
#define BRD_EXT_INT_ID_BTN
#define BRD_EXT_INT_ID_SW1
// #define BRD_EXT_INT_ID_SW3

#ifdef __cplusplus
}  ///  < extern "C"
#endif

#endif // _BRD_EXT_INT_DEF_H_
/**
 * @} 
 */
